package Classes;

import java.util.Random;

public class Zawodnik {

	int zwinnosc;
	int szybkosc;
	int sila;
	int skutecznosc;
	int wytrzymalosc;
	int punkty_zawodnika = 2;
	String imie;
	int x = 0;
	int y = 0; // x i y - obecna lokalizacja zawodnika
	int x1 = 0;
	int y1 = 0; // x1 i y1 - miejsca do ktorych bedzie dazyl zawodnik
	int W;
	int H;// wysokosc i szerokoca zawodnika
	int tabx[];
	int taby[];
	int licznik;
	int krok;
	int rew;
	boolean posiadanie=false;
	Random generator = new Random();

	public Zawodnik() {
		this.x = 110 + generator.nextInt(140);
		this.y = generator.nextInt(150);
		this.x1 = x;
		this.y1 = y;
	}

	public Zawodnik(String imie, String co, int a1, int a2, int a3, int a4) {
		this.H = 20;
		this.W = 20;
		this.imie = imie;
		this.x = 110 + generator.nextInt(140);
		this.y = generator.nextInt(150);
		this.x1 = x;
		this.y1 = y;
		tabx = new int[500];
		taby = new int[500];
		licznik = 0;
		krok = 0;
		rew = 0;

		if (co == "szybkosc") {
			a1 = a1 + 1;
		}
		if (co == "skutecznosc") {
			a2 = a2 + 1;
		}
		if (co == "wytrzymalosc") {
			a3 = a3 + 1;
		}
		if (co == "sila") {
			a4 = a4 + 1;
		}
		this.wytrzymalosc = a1;
		this.szybkosc = a2;
		this.skutecznosc = a3;
		this.sila = a4;
	}

	public void Punkt() {
		punkty_zawodnika++;
	}

	public void newXY() {
		if (rew == 0) {
			this.x = tabx[krok];
			this.y = taby[krok];
			krok ++;
		} else if (rew == 1) {
			this.x = tabx[licznik];
			this.y = taby[licznik];
			licznik--;
		}
	}

	public void bresenham_line(int x1, int y1, int x2, int y2) {
	
		if ((x1 - x2) > 0) {
			bresenham_line(x2, y2, x1, y1);
			rew = 1;
			return;
		}
		rew = 0;
		
		if (Math.abs(y2 - y1) > Math.abs(x2 - x1)) {		
			return;
		}
	
		int x = x1, y = y1, sum = x2 - x1, Dx = 2 * (x2 - x1), Dy = Math
				.abs(2 * (y2 - y1));
		int prirastokDy = ((y2 - y1) > 0) ? 1 : -1;
		
		licznik = x2 - x1;
		for (int i = 0; i <= x2 - x1; i++) {
			tabx[i] = x;
			taby[i] = y;

			x++;
			sum -= Dy;
			if (sum < 0) {
				y = y + prirastokDy;
				sum += Dx;
			}
		}
	}

	public void bresteepline(int x3, int y3, int x4, int y4) {
		
		if ((x3 - x4) > 0) {
			bresteepline(x4, y4, x3, y3);
			rew = 1;
			return;
		}
		rew = 0;

		int x = x3, y = y3, sum = x4 - x3, Dx = 2 * (x4 - x3), Dy = Math
				.abs(2 * (y4 - y3));
		int prirastokDy = ((y4 - y3) > 0) ? 1 : -1;
		licznik = x4 - x3;
		for (int i = 0; i <= x4 - x3; i++) {
			tabx[i] = y;
			taby[i] = x;
			x++;
			sum -= Dy;
			if (sum < 0) {
				y = y + prirastokDy;
				sum += Dx;
			}
		}
	}

	public int getX() {
		return this.x;
	}

	public int getY() {
		return this.y;
	}

	public void setX(int x) {
		this.x = x;
	}

	public void setY(int y) {
		this.y = y;
	}

	public int getX1() {
		return this.x1;
	}

	public int getY1() {
		return this.y1;
	}

	public void setX1(int x) {
		this.x1 = x;
	}

	public void setY1(int y) {
		this.y1 = y;
	}
}
